﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QLNhaThuoc.DTO;

namespace QLNhaThuoc.MyClass
{
    public class NhanVienFactory
    {
        private NhanVien[] lstLoai;
        private string[] lstTenLoai;
        public NhanVienFactory()
        {
            lstTenLoai = new string[3];
            lstTenLoai[0] = "AD";
            lstTenLoai[1] = "NV";
            lstTenLoai[2] = "QL";

            lstLoai = new NhanVien[3];
            lstLoai[0] = new NhanVienAdmin { LoaiNV = lstTenLoai[0] };
            lstLoai[1] = new NhanVienThuong { LoaiNV = lstTenLoai[1] };
            lstLoai[2] = new NhanVienQuanLy { LoaiNV = lstTenLoai[2] };
        }

        public NhanVien TaoNhanVien(NhanVien nv)
        {
            int index = FindLoaiIndex(nv.LoaiNV);
            return (NhanVien)lstLoai[index].Clone(nv);
        }

        public NhanVien TaoNhanVien(string tenLoai)
        {
            int index = FindLoaiIndex(tenLoai);
            return (NhanVien)lstLoai[index].Clone();
        }

        private int FindLoaiIndex(string request)
        {
            for (int i = 0; i < lstLoai.Length; i++)
                if (request == lstTenLoai[i])
                    return i;

            return 1;
        }
    }
}
